Notes#
Show imports
import os
import dimcat as dc
import ms3
import pandas as pd
import plotly.express as px
from dimcat import filters, plotting
import utils
pd.set_option("display.max_rows", 1000)
pd.set_option("display.max_columns", 500)
Show source
RESULTS_PATH = os.path.abspath(os.path.join(utils.OUTPUT_FOLDER, "notes_stats"))
os.makedirs(RESULTS_PATH, exist_ok=True)
def make_output_path(
filename: str,
extension=None,
path=RESULTS_PATH,
) -> str:
return utils.make_output_path(filename=filename, extension=extension, path=path)
def save_figure_as(
fig, filename, formats=("png", "pdf"), directory=RESULTS_PATH, **kwargs
):
if formats is not None:
for fmt in formats:
plotting.write_image(fig, filename, directory, format=fmt, **kwargs)
else:
plotting.write_image(fig, filename, directory, **kwargs)
Loading data
Show source
D = utils.get_dataset("c_schumann_lieder", corpus_release="v2.4")
package = D.inputs.get_package()
package_info = package._package.custom
git_tag = package_info.get("git_tag")
utils.print_heading("Data and software versions")
print("Clara Schumann – Lieder version v2.4")
print(f"Datapackage '{package.package_name}' @ {git_tag}")
print(f"dimcat version {dc.__version__}\n")
D
Data and software versions
--------------------------
Clara Schumann – Lieder version v2.4
Datapackage 'c_schumann_lieder' @ v2.4
dimcat version 3.4.0
Dataset
=======
{'inputs': {'basepath': None,
'packages': {'c_schumann_lieder': ["'c_schumann_lieder.measures' (MuseScoreFacetName.MuseScoreMeasures)",
"'c_schumann_lieder.notes' (MuseScoreFacetName.MuseScoreNotes)",
"'c_schumann_lieder.expanded' (MuseScoreFacetName.MuseScoreHarmonies)",
"'c_schumann_lieder.chords' (MuseScoreFacetName.MuseScoreChords)",
"'c_schumann_lieder.metadata' (FeatureName.Metadata)"]}},
'outputs': {'basepath': None, 'packages': {}},
'pipeline': []}
Metadata#
filtered_D = filters.HasHarmonyLabelsFilter(keep_values=[True]).process(D)
all_metadata = filtered_D.get_metadata()
all_metadata.reset_index(level=1).groupby(level=0).nth(0).iloc[:, :20]
| piece | TimeSig | KeySig | last_mc | last_mn | length_qb | last_mc_unfolded | last_mn_unfolded | length_qb_unfolded | volta_mcs | all_notes_qb | n_onsets | n_onset_positions | guitar_chord_count | form_label_count | label_count | annotated_key | harmony_version | annotators | reviewers | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| corpus | ||||||||||||||||||||
| c_schumann_lieder | op13no1 Ich stand in dunklen Traumen | {1: '3/4'} | {1: -3} | 37 | 37 | 111.0 | 37 | 37 | 111.0 | () | 552.5 | 931 | 225 | 0 | 0 | 103 | Eb | 2.3.0 | Adrian Nagel | AB |
chronological_order = utils.chronological_corpus_order(all_metadata)
corpus_colors = dict(zip(chronological_order, utils.CORPUS_COLOR_SCALE))
notes_feature = filtered_D.get_feature("notes")
all_notes = notes_feature.df
print(f"{len(all_notes.index)} notes over {len(all_notes.groupby(level=[0,1]))} files.")
all_notes.head()
10418 notes over 12 files.
| mc | mn | quarterbeats | quarterbeats_all_endings | duration_qb | duration | mc_onset | mn_onset | timesig | staff | voice | volta | chord_id | gracenote | midi | name | nominal_duration | octave | scalar | tied | tremolo | tpc_name | tpc | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| corpus | piece | i | |||||||||||||||||||||||
| c_schumann_lieder | op13no1 Ich stand in dunklen Traumen | 0 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 3 | 1 | <NA> | 6 | <NA> | 51 | Eb3 | 1/8 | 3 | 1 | <NA> | <NA> | Eb | -3 |
| 1 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 2 | 1 | <NA> | 0 | <NA> | 58 | Bb3 | 1/8 | 3 | 1 | <NA> | <NA> | Bb | -2 | ||
| 2 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 2 | 1 | <NA> | 0 | <NA> | 63 | Eb4 | 1/8 | 4 | 1 | <NA> | <NA> | Eb | -3 | ||
| 3 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 2 | 1 | <NA> | 0 | <NA> | 67 | G4 | 1/8 | 4 | 1 | <NA> | <NA> | G | 1 | ||
| 4 | 1 | 1 | 1/2 | 1/2 | 0.5 | 1/8 | 1/8 | 1/8 | 3/4 | 3 | 1 | <NA> | 7 | <NA> | 51 | Eb3 | 1/8 | 3 | 1 | <NA> | <NA> | Eb | -3 |
def weight_notes(nl, group_col="midi", precise=True):
summed_durations = nl.groupby(group_col).duration_qb.sum()
shortest_duration = summed_durations[summed_durations > 0].min()
summed_durations /= shortest_duration # normalize such that the shortest duration results in 1 occurrence
if not precise:
# This simple trick reduces compute time but also precision:
# The rationale is to have the smallest value be slightly larger than 0.5 because
# if it was exactly 0.5 it would be rounded down by repeat_notes_according_to_weights()
summed_durations /= 1.9999999
return repeat_notes_according_to_weights(summed_durations)
def repeat_notes_according_to_weights(weights):
try:
counts = weights.round().astype(int)
except Exception:
return pd.Series(dtype=int)
counts_reflecting_weights = []
for pitch, count in counts.items():
counts_reflecting_weights.extend([pitch] * count)
return pd.Series(counts_reflecting_weights)
Ambitus#
corpus_names = {
corp: utils.get_corpus_display_name(corp) for corp in chronological_order
}
chronological_corpus_names = list(corpus_names.values())
corpus_name_colors = {
corpus_names[corp]: color for corp, color in corpus_colors.items()
}
all_notes["corpus_name"] = all_notes.index.get_level_values(0).map(corpus_names)
grouped_notes = all_notes.groupby("corpus_name")
weighted_midi = pd.concat(
[weight_notes(nl, "midi", precise=False) for _, nl in grouped_notes],
keys=grouped_notes.groups.keys(),
).reset_index(level=0)
weighted_midi.columns = ["dataset", "midi"]
weighted_midi
| dataset | midi | |
|---|---|---|
| 0 | C Schumann Lieder | 27 |
| 1 | C Schumann Lieder | 27 |
| 2 | C Schumann Lieder | 27 |
| 3 | C Schumann Lieder | 27 |
| 4 | C Schumann Lieder | 27 |
| ... | ... | ... |
| 5939 | C Schumann Lieder | 87 |
| 5940 | C Schumann Lieder | 87 |
| 5941 | C Schumann Lieder | 88 |
| 5942 | C Schumann Lieder | 89 |
| 5943 | C Schumann Lieder | 89 |
5944 rows × 2 columns
# fig = px.violin(weighted_midi,
# x='dataset',
# y='midi',
# color='dataset',
# title="Corpus-wise distribution over registers (ambitus)",
# box=True,
# labels=dict(
# dataset='',
# midi='distribution of pitches by duration'
# ),
# category_orders=dict(dataset=chronological_corpus_names),
# color_discrete_map=corpus_name_colors,
# width=1000, height=600,
# )
# fig.update_traces(spanmode='hard') # do not extend beyond outliers
# fig.update_layout(**utils.STD_LAYOUT,
# showlegend=False)
# fig.update_yaxes(
# tickmode= 'array',
# tickvals= [12, 24, 36, 48, 60, 72, 84, 96],
# ticktext = ["C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7"],
# )
# fig.update_xaxes(tickangle=45)
# save_figure_as(fig, "ambitus_corpuswise_violins")
# fig.show()
Tonal Pitch Classes (TPC)#
weighted_tpc = pd.concat(
[weight_notes(nl, "tpc") for _, nl in grouped_notes],
keys=grouped_notes.groups.keys(),
).reset_index(level=0)
weighted_tpc.columns = ["dataset", "tpc"]
weighted_tpc
| dataset | tpc | |
|---|---|---|
| 0 | C Schumann Lieder | -9 |
| 1 | C Schumann Lieder | -9 |
| 2 | C Schumann Lieder | -8 |
| 3 | C Schumann Lieder | -8 |
| 4 | C Schumann Lieder | -8 |
| 5 | C Schumann Lieder | -7 |
| 6 | C Schumann Lieder | -7 |
| 7 | C Schumann Lieder | -7 |
| 8 | C Schumann Lieder | -7 |
| 9 | C Schumann Lieder | -7 |
| 10 | C Schumann Lieder | -7 |
| 11 | C Schumann Lieder | -6 |
| 12 | C Schumann Lieder | -6 |
| 13 | C Schumann Lieder | -6 |
| 14 | C Schumann Lieder | -6 |
| 15 | C Schumann Lieder | -6 |
| 16 | C Schumann Lieder | -6 |
| 17 | C Schumann Lieder | -6 |
| 18 | C Schumann Lieder | -6 |
| 19 | C Schumann Lieder | -6 |
| 20 | C Schumann Lieder | -6 |
| 21 | C Schumann Lieder | -6 |
| 22 | C Schumann Lieder | -6 |
| 23 | C Schumann Lieder | -6 |
| 24 | C Schumann Lieder | -5 |
| 25 | C Schumann Lieder | -5 |
| 26 | C Schumann Lieder | -5 |
| 27 | C Schumann Lieder | -5 |
| 28 | C Schumann Lieder | -5 |
| 29 | C Schumann Lieder | -5 |
| 30 | C Schumann Lieder | -5 |
| 31 | C Schumann Lieder | -5 |
| 32 | C Schumann Lieder | -5 |
| 33 | C Schumann Lieder | -5 |
| 34 | C Schumann Lieder | -5 |
| 35 | C Schumann Lieder | -5 |
| 36 | C Schumann Lieder | -5 |
| 37 | C Schumann Lieder | -5 |
| 38 | C Schumann Lieder | -5 |
| 39 | C Schumann Lieder | -5 |
| 40 | C Schumann Lieder | -5 |
| 41 | C Schumann Lieder | -5 |
| 42 | C Schumann Lieder | -5 |
| 43 | C Schumann Lieder | -5 |
| 44 | C Schumann Lieder | -5 |
| 45 | C Schumann Lieder | -5 |
| 46 | C Schumann Lieder | -5 |
| 47 | C Schumann Lieder | -5 |
| 48 | C Schumann Lieder | -5 |
| 49 | C Schumann Lieder | -5 |
| 50 | C Schumann Lieder | -5 |
| 51 | C Schumann Lieder | -5 |
| 52 | C Schumann Lieder | -5 |
| 53 | C Schumann Lieder | -5 |
| 54 | C Schumann Lieder | -5 |
| 55 | C Schumann Lieder | -5 |
| 56 | C Schumann Lieder | -5 |
| 57 | C Schumann Lieder | -5 |
| 58 | C Schumann Lieder | -4 |
| 59 | C Schumann Lieder | -4 |
| 60 | C Schumann Lieder | -4 |
| 61 | C Schumann Lieder | -4 |
| 62 | C Schumann Lieder | -4 |
| 63 | C Schumann Lieder | -4 |
| 64 | C Schumann Lieder | -4 |
| 65 | C Schumann Lieder | -4 |
| 66 | C Schumann Lieder | -4 |
| 67 | C Schumann Lieder | -4 |
| 68 | C Schumann Lieder | -4 |
| 69 | C Schumann Lieder | -4 |
| 70 | C Schumann Lieder | -4 |
| 71 | C Schumann Lieder | -4 |
| 72 | C Schumann Lieder | -4 |
| 73 | C Schumann Lieder | -4 |
| 74 | C Schumann Lieder | -4 |
| 75 | C Schumann Lieder | -4 |
| 76 | C Schumann Lieder | -4 |
| 77 | C Schumann Lieder | -4 |
| 78 | C Schumann Lieder | -4 |
| 79 | C Schumann Lieder | -4 |
| 80 | C Schumann Lieder | -4 |
| 81 | C Schumann Lieder | -4 |
| 82 | C Schumann Lieder | -4 |
| 83 | C Schumann Lieder | -4 |
| 84 | C Schumann Lieder | -4 |
| 85 | C Schumann Lieder | -4 |
| 86 | C Schumann Lieder | -4 |
| 87 | C Schumann Lieder | -4 |
| 88 | C Schumann Lieder | -4 |
| 89 | C Schumann Lieder | -4 |
| 90 | C Schumann Lieder | -4 |
| 91 | C Schumann Lieder | -4 |
| 92 | C Schumann Lieder | -4 |
| 93 | C Schumann Lieder | -4 |
| 94 | C Schumann Lieder | -4 |
| 95 | C Schumann Lieder | -4 |
| 96 | C Schumann Lieder | -4 |
| 97 | C Schumann Lieder | -4 |
| 98 | C Schumann Lieder | -4 |
| 99 | C Schumann Lieder | -4 |
| 100 | C Schumann Lieder | -4 |
| 101 | C Schumann Lieder | -4 |
| 102 | C Schumann Lieder | -4 |
| 103 | C Schumann Lieder | -4 |
| 104 | C Schumann Lieder | -4 |
| 105 | C Schumann Lieder | -4 |
| 106 | C Schumann Lieder | -4 |
| 107 | C Schumann Lieder | -4 |
| 108 | C Schumann Lieder | -4 |
| 109 | C Schumann Lieder | -4 |
| 110 | C Schumann Lieder | -4 |
| 111 | C Schumann Lieder | -4 |
| 112 | C Schumann Lieder | -4 |
| 113 | C Schumann Lieder | -4 |
| 114 | C Schumann Lieder | -4 |
| 115 | C Schumann Lieder | -4 |
| 116 | C Schumann Lieder | -4 |
| 117 | C Schumann Lieder | -4 |
| 118 | C Schumann Lieder | -4 |
| 119 | C Schumann Lieder | -4 |
| 120 | C Schumann Lieder | -3 |
| 121 | C Schumann Lieder | -3 |
| 122 | C Schumann Lieder | -3 |
| 123 | C Schumann Lieder | -3 |
| 124 | C Schumann Lieder | -3 |
| 125 | C Schumann Lieder | -3 |
| 126 | C Schumann Lieder | -3 |
| 127 | C Schumann Lieder | -3 |
| 128 | C Schumann Lieder | -3 |
| 129 | C Schumann Lieder | -3 |
| 130 | C Schumann Lieder | -3 |
| 131 | C Schumann Lieder | -3 |
| 132 | C Schumann Lieder | -3 |
| 133 | C Schumann Lieder | -3 |
| 134 | C Schumann Lieder | -3 |
| 135 | C Schumann Lieder | -3 |
| 136 | C Schumann Lieder | -3 |
| 137 | C Schumann Lieder | -3 |
| 138 | C Schumann Lieder | -3 |
| 139 | C Schumann Lieder | -3 |
| 140 | C Schumann Lieder | -3 |
| 141 | C Schumann Lieder | -3 |
| 142 | C Schumann Lieder | -3 |
| 143 | C Schumann Lieder | -3 |
| 144 | C Schumann Lieder | -3 |
| 145 | C Schumann Lieder | -3 |
| 146 | C Schumann Lieder | -3 |
| 147 | C Schumann Lieder | -3 |
| 148 | C Schumann Lieder | -3 |
| 149 | C Schumann Lieder | -3 |
| 150 | C Schumann Lieder | -3 |
| 151 | C Schumann Lieder | -3 |
| 152 | C Schumann Lieder | -3 |
| 153 | C Schumann Lieder | -3 |
| 154 | C Schumann Lieder | -3 |
| 155 | C Schumann Lieder | -3 |
| 156 | C Schumann Lieder | -3 |
| 157 | C Schumann Lieder | -3 |
| 158 | C Schumann Lieder | -3 |
| 159 | C Schumann Lieder | -3 |
| 160 | C Schumann Lieder | -3 |
| 161 | C Schumann Lieder | -3 |
| 162 | C Schumann Lieder | -3 |
| 163 | C Schumann Lieder | -3 |
| 164 | C Schumann Lieder | -3 |
| 165 | C Schumann Lieder | -3 |
| 166 | C Schumann Lieder | -3 |
| 167 | C Schumann Lieder | -3 |
| 168 | C Schumann Lieder | -3 |
| 169 | C Schumann Lieder | -3 |
| 170 | C Schumann Lieder | -3 |
| 171 | C Schumann Lieder | -3 |
| 172 | C Schumann Lieder | -3 |
| 173 | C Schumann Lieder | -3 |
| 174 | C Schumann Lieder | -3 |
| 175 | C Schumann Lieder | -3 |
| 176 | C Schumann Lieder | -3 |
| 177 | C Schumann Lieder | -3 |
| 178 | C Schumann Lieder | -3 |
| 179 | C Schumann Lieder | -3 |
| 180 | C Schumann Lieder | -3 |
| 181 | C Schumann Lieder | -3 |
| 182 | C Schumann Lieder | -3 |
| 183 | C Schumann Lieder | -3 |
| 184 | C Schumann Lieder | -3 |
| 185 | C Schumann Lieder | -3 |
| 186 | C Schumann Lieder | -3 |
| 187 | C Schumann Lieder | -3 |
| 188 | C Schumann Lieder | -3 |
| 189 | C Schumann Lieder | -3 |
| 190 | C Schumann Lieder | -3 |
| 191 | C Schumann Lieder | -3 |
| 192 | C Schumann Lieder | -3 |
| 193 | C Schumann Lieder | -3 |
| 194 | C Schumann Lieder | -3 |
| 195 | C Schumann Lieder | -3 |
| 196 | C Schumann Lieder | -3 |
| 197 | C Schumann Lieder | -3 |
| 198 | C Schumann Lieder | -3 |
| 199 | C Schumann Lieder | -3 |
| 200 | C Schumann Lieder | -3 |
| 201 | C Schumann Lieder | -3 |
| 202 | C Schumann Lieder | -3 |
| 203 | C Schumann Lieder | -3 |
| 204 | C Schumann Lieder | -3 |
| 205 | C Schumann Lieder | -3 |
| 206 | C Schumann Lieder | -3 |
| 207 | C Schumann Lieder | -3 |
| 208 | C Schumann Lieder | -3 |
| 209 | C Schumann Lieder | -3 |
| 210 | C Schumann Lieder | -3 |
| 211 | C Schumann Lieder | -3 |
| 212 | C Schumann Lieder | -3 |
| 213 | C Schumann Lieder | -3 |
| 214 | C Schumann Lieder | -3 |
| 215 | C Schumann Lieder | -3 |
| 216 | C Schumann Lieder | -2 |
| 217 | C Schumann Lieder | -2 |
| 218 | C Schumann Lieder | -2 |
| 219 | C Schumann Lieder | -2 |
| 220 | C Schumann Lieder | -2 |
| 221 | C Schumann Lieder | -2 |
| 222 | C Schumann Lieder | -2 |
| 223 | C Schumann Lieder | -2 |
| 224 | C Schumann Lieder | -2 |
| 225 | C Schumann Lieder | -2 |
| 226 | C Schumann Lieder | -2 |
| 227 | C Schumann Lieder | -2 |
| 228 | C Schumann Lieder | -2 |
| 229 | C Schumann Lieder | -2 |
| 230 | C Schumann Lieder | -2 |
| 231 | C Schumann Lieder | -2 |
| 232 | C Schumann Lieder | -2 |
| 233 | C Schumann Lieder | -2 |
| 234 | C Schumann Lieder | -2 |
| 235 | C Schumann Lieder | -2 |
| 236 | C Schumann Lieder | -2 |
| 237 | C Schumann Lieder | -2 |
| 238 | C Schumann Lieder | -2 |
| 239 | C Schumann Lieder | -2 |
| 240 | C Schumann Lieder | -2 |
| 241 | C Schumann Lieder | -2 |
| 242 | C Schumann Lieder | -2 |
| 243 | C Schumann Lieder | -2 |
| 244 | C Schumann Lieder | -2 |
| 245 | C Schumann Lieder | -2 |
| 246 | C Schumann Lieder | -2 |
| 247 | C Schumann Lieder | -2 |
| 248 | C Schumann Lieder | -2 |
| 249 | C Schumann Lieder | -2 |
| 250 | C Schumann Lieder | -2 |
| 251 | C Schumann Lieder | -2 |
| 252 | C Schumann Lieder | -2 |
| 253 | C Schumann Lieder | -2 |
| 254 | C Schumann Lieder | -2 |
| 255 | C Schumann Lieder | -2 |
| 256 | C Schumann Lieder | -2 |
| 257 | C Schumann Lieder | -2 |
| 258 | C Schumann Lieder | -2 |
| 259 | C Schumann Lieder | -2 |
| 260 | C Schumann Lieder | -2 |
| 261 | C Schumann Lieder | -2 |
| 262 | C Schumann Lieder | -2 |
| 263 | C Schumann Lieder | -2 |
| 264 | C Schumann Lieder | -2 |
| 265 | C Schumann Lieder | -2 |
| 266 | C Schumann Lieder | -2 |
| 267 | C Schumann Lieder | -2 |
| 268 | C Schumann Lieder | -2 |
| 269 | C Schumann Lieder | -2 |
| 270 | C Schumann Lieder | -2 |
| 271 | C Schumann Lieder | -2 |
| 272 | C Schumann Lieder | -2 |
| 273 | C Schumann Lieder | -2 |
| 274 | C Schumann Lieder | -2 |
| 275 | C Schumann Lieder | -2 |
| 276 | C Schumann Lieder | -2 |
| 277 | C Schumann Lieder | -2 |
| 278 | C Schumann Lieder | -2 |
| 279 | C Schumann Lieder | -2 |
| 280 | C Schumann Lieder | -2 |
| 281 | C Schumann Lieder | -2 |
| 282 | C Schumann Lieder | -2 |
| 283 | C Schumann Lieder | -2 |
| 284 | C Schumann Lieder | -2 |
| 285 | C Schumann Lieder | -2 |
| 286 | C Schumann Lieder | -2 |
| 287 | C Schumann Lieder | -2 |
| 288 | C Schumann Lieder | -2 |
| 289 | C Schumann Lieder | -2 |
| 290 | C Schumann Lieder | -2 |
| 291 | C Schumann Lieder | -2 |
| 292 | C Schumann Lieder | -2 |
| 293 | C Schumann Lieder | -2 |
| 294 | C Schumann Lieder | -2 |
| 295 | C Schumann Lieder | -2 |
| 296 | C Schumann Lieder | -2 |
| 297 | C Schumann Lieder | -2 |
| 298 | C Schumann Lieder | -2 |
| 299 | C Schumann Lieder | -2 |
| 300 | C Schumann Lieder | -2 |
| 301 | C Schumann Lieder | -1 |
| 302 | C Schumann Lieder | -1 |
| 303 | C Schumann Lieder | -1 |
| 304 | C Schumann Lieder | -1 |
| 305 | C Schumann Lieder | -1 |
| 306 | C Schumann Lieder | -1 |
| 307 | C Schumann Lieder | -1 |
| 308 | C Schumann Lieder | -1 |
| 309 | C Schumann Lieder | -1 |
| 310 | C Schumann Lieder | -1 |
| 311 | C Schumann Lieder | -1 |
| 312 | C Schumann Lieder | -1 |
| 313 | C Schumann Lieder | -1 |
| 314 | C Schumann Lieder | -1 |
| 315 | C Schumann Lieder | -1 |
| 316 | C Schumann Lieder | -1 |
| 317 | C Schumann Lieder | -1 |
| 318 | C Schumann Lieder | -1 |
| 319 | C Schumann Lieder | -1 |
| 320 | C Schumann Lieder | -1 |
| 321 | C Schumann Lieder | -1 |
| 322 | C Schumann Lieder | -1 |
| 323 | C Schumann Lieder | -1 |
| 324 | C Schumann Lieder | -1 |
| 325 | C Schumann Lieder | -1 |
| 326 | C Schumann Lieder | -1 |
| 327 | C Schumann Lieder | -1 |
| 328 | C Schumann Lieder | -1 |
| 329 | C Schumann Lieder | -1 |
| 330 | C Schumann Lieder | -1 |
| 331 | C Schumann Lieder | -1 |
| 332 | C Schumann Lieder | -1 |
| 333 | C Schumann Lieder | -1 |
| 334 | C Schumann Lieder | -1 |
| 335 | C Schumann Lieder | -1 |
| 336 | C Schumann Lieder | -1 |
| 337 | C Schumann Lieder | -1 |
| 338 | C Schumann Lieder | -1 |
| 339 | C Schumann Lieder | -1 |
| 340 | C Schumann Lieder | -1 |
| 341 | C Schumann Lieder | -1 |
| 342 | C Schumann Lieder | -1 |
| 343 | C Schumann Lieder | -1 |
| 344 | C Schumann Lieder | -1 |
| 345 | C Schumann Lieder | -1 |
| 346 | C Schumann Lieder | -1 |
| 347 | C Schumann Lieder | -1 |
| 348 | C Schumann Lieder | -1 |
| 349 | C Schumann Lieder | -1 |
| 350 | C Schumann Lieder | -1 |
| 351 | C Schumann Lieder | -1 |
| 352 | C Schumann Lieder | -1 |
| 353 | C Schumann Lieder | -1 |
| 354 | C Schumann Lieder | 0 |
| 355 | C Schumann Lieder | 0 |
| 356 | C Schumann Lieder | 0 |
| 357 | C Schumann Lieder | 0 |
| 358 | C Schumann Lieder | 0 |
| 359 | C Schumann Lieder | 0 |
| 360 | C Schumann Lieder | 0 |
| 361 | C Schumann Lieder | 0 |
| 362 | C Schumann Lieder | 0 |
| 363 | C Schumann Lieder | 0 |
| 364 | C Schumann Lieder | 0 |
| 365 | C Schumann Lieder | 0 |
| 366 | C Schumann Lieder | 0 |
| 367 | C Schumann Lieder | 0 |
| 368 | C Schumann Lieder | 0 |
| 369 | C Schumann Lieder | 0 |
| 370 | C Schumann Lieder | 0 |
| 371 | C Schumann Lieder | 0 |
| 372 | C Schumann Lieder | 0 |
| 373 | C Schumann Lieder | 0 |
| 374 | C Schumann Lieder | 0 |
| 375 | C Schumann Lieder | 0 |
| 376 | C Schumann Lieder | 0 |
| 377 | C Schumann Lieder | 0 |
| 378 | C Schumann Lieder | 0 |
| 379 | C Schumann Lieder | 0 |
| 380 | C Schumann Lieder | 0 |
| 381 | C Schumann Lieder | 0 |
| 382 | C Schumann Lieder | 0 |
| 383 | C Schumann Lieder | 0 |
| 384 | C Schumann Lieder | 0 |
| 385 | C Schumann Lieder | 0 |
| 386 | C Schumann Lieder | 0 |
| 387 | C Schumann Lieder | 0 |
| 388 | C Schumann Lieder | 0 |
| 389 | C Schumann Lieder | 0 |
| 390 | C Schumann Lieder | 0 |
| 391 | C Schumann Lieder | 0 |
| 392 | C Schumann Lieder | 0 |
| 393 | C Schumann Lieder | 0 |
| 394 | C Schumann Lieder | 0 |
| 395 | C Schumann Lieder | 0 |
| 396 | C Schumann Lieder | 0 |
| 397 | C Schumann Lieder | 0 |
| 398 | C Schumann Lieder | 0 |
| 399 | C Schumann Lieder | 0 |
| 400 | C Schumann Lieder | 0 |
| 401 | C Schumann Lieder | 0 |
| 402 | C Schumann Lieder | 0 |
| 403 | C Schumann Lieder | 0 |
| 404 | C Schumann Lieder | 0 |
| 405 | C Schumann Lieder | 0 |
| 406 | C Schumann Lieder | 0 |
| 407 | C Schumann Lieder | 0 |
| 408 | C Schumann Lieder | 0 |
| 409 | C Schumann Lieder | 0 |
| 410 | C Schumann Lieder | 0 |
| 411 | C Schumann Lieder | 0 |
| 412 | C Schumann Lieder | 0 |
| 413 | C Schumann Lieder | 0 |
| 414 | C Schumann Lieder | 0 |
| 415 | C Schumann Lieder | 0 |
| 416 | C Schumann Lieder | 0 |
| 417 | C Schumann Lieder | 0 |
| 418 | C Schumann Lieder | 1 |
| 419 | C Schumann Lieder | 1 |
| 420 | C Schumann Lieder | 1 |
| 421 | C Schumann Lieder | 1 |
| 422 | C Schumann Lieder | 1 |
| 423 | C Schumann Lieder | 1 |
| 424 | C Schumann Lieder | 1 |
| 425 | C Schumann Lieder | 1 |
| 426 | C Schumann Lieder | 1 |
| 427 | C Schumann Lieder | 1 |
| 428 | C Schumann Lieder | 1 |
| 429 | C Schumann Lieder | 1 |
| 430 | C Schumann Lieder | 1 |
| 431 | C Schumann Lieder | 1 |
| 432 | C Schumann Lieder | 1 |
| 433 | C Schumann Lieder | 1 |
| 434 | C Schumann Lieder | 1 |
| 435 | C Schumann Lieder | 1 |
| 436 | C Schumann Lieder | 1 |
| 437 | C Schumann Lieder | 1 |
| 438 | C Schumann Lieder | 1 |
| 439 | C Schumann Lieder | 1 |
| 440 | C Schumann Lieder | 1 |
| 441 | C Schumann Lieder | 1 |
| 442 | C Schumann Lieder | 1 |
| 443 | C Schumann Lieder | 1 |
| 444 | C Schumann Lieder | 1 |
| 445 | C Schumann Lieder | 1 |
| 446 | C Schumann Lieder | 1 |
| 447 | C Schumann Lieder | 1 |
| 448 | C Schumann Lieder | 1 |
| 449 | C Schumann Lieder | 1 |
| 450 | C Schumann Lieder | 1 |
| 451 | C Schumann Lieder | 1 |
| 452 | C Schumann Lieder | 1 |
| 453 | C Schumann Lieder | 1 |
| 454 | C Schumann Lieder | 1 |
| 455 | C Schumann Lieder | 1 |
| 456 | C Schumann Lieder | 1 |
| 457 | C Schumann Lieder | 1 |
| 458 | C Schumann Lieder | 1 |
| 459 | C Schumann Lieder | 1 |
| 460 | C Schumann Lieder | 1 |
| 461 | C Schumann Lieder | 1 |
| 462 | C Schumann Lieder | 1 |
| 463 | C Schumann Lieder | 1 |
| 464 | C Schumann Lieder | 1 |
| 465 | C Schumann Lieder | 1 |
| 466 | C Schumann Lieder | 1 |
| 467 | C Schumann Lieder | 1 |
| 468 | C Schumann Lieder | 1 |
| 469 | C Schumann Lieder | 1 |
| 470 | C Schumann Lieder | 1 |
| 471 | C Schumann Lieder | 1 |
| 472 | C Schumann Lieder | 1 |
| 473 | C Schumann Lieder | 1 |
| 474 | C Schumann Lieder | 1 |
| 475 | C Schumann Lieder | 1 |
| 476 | C Schumann Lieder | 1 |
| 477 | C Schumann Lieder | 1 |
| 478 | C Schumann Lieder | 1 |
| 479 | C Schumann Lieder | 1 |
| 480 | C Schumann Lieder | 2 |
| 481 | C Schumann Lieder | 2 |
| 482 | C Schumann Lieder | 2 |
| 483 | C Schumann Lieder | 2 |
| 484 | C Schumann Lieder | 2 |
| 485 | C Schumann Lieder | 2 |
| 486 | C Schumann Lieder | 2 |
| 487 | C Schumann Lieder | 2 |
| 488 | C Schumann Lieder | 2 |
| 489 | C Schumann Lieder | 2 |
| 490 | C Schumann Lieder | 2 |
| 491 | C Schumann Lieder | 2 |
| 492 | C Schumann Lieder | 2 |
| 493 | C Schumann Lieder | 2 |
| 494 | C Schumann Lieder | 2 |
| 495 | C Schumann Lieder | 2 |
| 496 | C Schumann Lieder | 2 |
| 497 | C Schumann Lieder | 2 |
| 498 | C Schumann Lieder | 2 |
| 499 | C Schumann Lieder | 2 |
| 500 | C Schumann Lieder | 2 |
| 501 | C Schumann Lieder | 2 |
| 502 | C Schumann Lieder | 2 |
| 503 | C Schumann Lieder | 2 |
| 504 | C Schumann Lieder | 2 |
| 505 | C Schumann Lieder | 2 |
| 506 | C Schumann Lieder | 2 |
| 507 | C Schumann Lieder | 2 |
| 508 | C Schumann Lieder | 2 |
| 509 | C Schumann Lieder | 2 |
| 510 | C Schumann Lieder | 2 |
| 511 | C Schumann Lieder | 2 |
| 512 | C Schumann Lieder | 2 |
| 513 | C Schumann Lieder | 2 |
| 514 | C Schumann Lieder | 2 |
| 515 | C Schumann Lieder | 2 |
| 516 | C Schumann Lieder | 2 |
| 517 | C Schumann Lieder | 2 |
| 518 | C Schumann Lieder | 2 |
| 519 | C Schumann Lieder | 2 |
| 520 | C Schumann Lieder | 2 |
| 521 | C Schumann Lieder | 2 |
| 522 | C Schumann Lieder | 2 |
| 523 | C Schumann Lieder | 2 |
| 524 | C Schumann Lieder | 2 |
| 525 | C Schumann Lieder | 2 |
| 526 | C Schumann Lieder | 2 |
| 527 | C Schumann Lieder | 2 |
| 528 | C Schumann Lieder | 2 |
| 529 | C Schumann Lieder | 2 |
| 530 | C Schumann Lieder | 2 |
| 531 | C Schumann Lieder | 2 |
| 532 | C Schumann Lieder | 2 |
| 533 | C Schumann Lieder | 2 |
| 534 | C Schumann Lieder | 2 |
| 535 | C Schumann Lieder | 2 |
| 536 | C Schumann Lieder | 2 |
| 537 | C Schumann Lieder | 2 |
| 538 | C Schumann Lieder | 2 |
| 539 | C Schumann Lieder | 2 |
| 540 | C Schumann Lieder | 2 |
| 541 | C Schumann Lieder | 2 |
| 542 | C Schumann Lieder | 3 |
| 543 | C Schumann Lieder | 3 |
| 544 | C Schumann Lieder | 3 |
| 545 | C Schumann Lieder | 3 |
| 546 | C Schumann Lieder | 3 |
| 547 | C Schumann Lieder | 3 |
| 548 | C Schumann Lieder | 3 |
| 549 | C Schumann Lieder | 3 |
| 550 | C Schumann Lieder | 3 |
| 551 | C Schumann Lieder | 3 |
| 552 | C Schumann Lieder | 3 |
| 553 | C Schumann Lieder | 3 |
| 554 | C Schumann Lieder | 3 |
| 555 | C Schumann Lieder | 3 |
| 556 | C Schumann Lieder | 3 |
| 557 | C Schumann Lieder | 3 |
| 558 | C Schumann Lieder | 3 |
| 559 | C Schumann Lieder | 3 |
| 560 | C Schumann Lieder | 3 |
| 561 | C Schumann Lieder | 3 |
| 562 | C Schumann Lieder | 3 |
| 563 | C Schumann Lieder | 3 |
| 564 | C Schumann Lieder | 3 |
| 565 | C Schumann Lieder | 3 |
| 566 | C Schumann Lieder | 3 |
| 567 | C Schumann Lieder | 3 |
| 568 | C Schumann Lieder | 3 |
| 569 | C Schumann Lieder | 3 |
| 570 | C Schumann Lieder | 3 |
| 571 | C Schumann Lieder | 3 |
| 572 | C Schumann Lieder | 3 |
| 573 | C Schumann Lieder | 3 |
| 574 | C Schumann Lieder | 3 |
| 575 | C Schumann Lieder | 3 |
| 576 | C Schumann Lieder | 3 |
| 577 | C Schumann Lieder | 3 |
| 578 | C Schumann Lieder | 3 |
| 579 | C Schumann Lieder | 3 |
| 580 | C Schumann Lieder | 3 |
| 581 | C Schumann Lieder | 3 |
| 582 | C Schumann Lieder | 3 |
| 583 | C Schumann Lieder | 3 |
| 584 | C Schumann Lieder | 3 |
| 585 | C Schumann Lieder | 3 |
| 586 | C Schumann Lieder | 3 |
| 587 | C Schumann Lieder | 3 |
| 588 | C Schumann Lieder | 3 |
| 589 | C Schumann Lieder | 3 |
| 590 | C Schumann Lieder | 3 |
| 591 | C Schumann Lieder | 3 |
| 592 | C Schumann Lieder | 4 |
| 593 | C Schumann Lieder | 4 |
| 594 | C Schumann Lieder | 4 |
| 595 | C Schumann Lieder | 4 |
| 596 | C Schumann Lieder | 4 |
| 597 | C Schumann Lieder | 4 |
| 598 | C Schumann Lieder | 4 |
| 599 | C Schumann Lieder | 4 |
| 600 | C Schumann Lieder | 4 |
| 601 | C Schumann Lieder | 4 |
| 602 | C Schumann Lieder | 4 |
| 603 | C Schumann Lieder | 4 |
| 604 | C Schumann Lieder | 4 |
| 605 | C Schumann Lieder | 4 |
| 606 | C Schumann Lieder | 4 |
| 607 | C Schumann Lieder | 4 |
| 608 | C Schumann Lieder | 4 |
| 609 | C Schumann Lieder | 4 |
| 610 | C Schumann Lieder | 4 |
| 611 | C Schumann Lieder | 4 |
| 612 | C Schumann Lieder | 4 |
| 613 | C Schumann Lieder | 4 |
| 614 | C Schumann Lieder | 4 |
| 615 | C Schumann Lieder | 4 |
| 616 | C Schumann Lieder | 4 |
| 617 | C Schumann Lieder | 4 |
| 618 | C Schumann Lieder | 4 |
| 619 | C Schumann Lieder | 4 |
| 620 | C Schumann Lieder | 4 |
| 621 | C Schumann Lieder | 4 |
| 622 | C Schumann Lieder | 4 |
| 623 | C Schumann Lieder | 5 |
| 624 | C Schumann Lieder | 5 |
| 625 | C Schumann Lieder | 5 |
| 626 | C Schumann Lieder | 5 |
| 627 | C Schumann Lieder | 5 |
| 628 | C Schumann Lieder | 5 |
| 629 | C Schumann Lieder | 5 |
| 630 | C Schumann Lieder | 5 |
| 631 | C Schumann Lieder | 5 |
| 632 | C Schumann Lieder | 5 |
| 633 | C Schumann Lieder | 5 |
| 634 | C Schumann Lieder | 5 |
| 635 | C Schumann Lieder | 5 |
| 636 | C Schumann Lieder | 5 |
| 637 | C Schumann Lieder | 5 |
| 638 | C Schumann Lieder | 5 |
| 639 | C Schumann Lieder | 5 |
| 640 | C Schumann Lieder | 5 |
| 641 | C Schumann Lieder | 5 |
| 642 | C Schumann Lieder | 5 |
| 643 | C Schumann Lieder | 5 |
| 644 | C Schumann Lieder | 5 |
| 645 | C Schumann Lieder | 5 |
| 646 | C Schumann Lieder | 5 |
| 647 | C Schumann Lieder | 5 |
| 648 | C Schumann Lieder | 5 |
| 649 | C Schumann Lieder | 5 |
| 650 | C Schumann Lieder | 6 |
| 651 | C Schumann Lieder | 6 |
| 652 | C Schumann Lieder | 6 |
| 653 | C Schumann Lieder | 6 |
| 654 | C Schumann Lieder | 6 |
| 655 | C Schumann Lieder | 6 |
| 656 | C Schumann Lieder | 6 |
| 657 | C Schumann Lieder | 6 |
| 658 | C Schumann Lieder | 6 |
| 659 | C Schumann Lieder | 6 |
| 660 | C Schumann Lieder | 6 |
| 661 | C Schumann Lieder | 6 |
| 662 | C Schumann Lieder | 6 |
| 663 | C Schumann Lieder | 6 |
| 664 | C Schumann Lieder | 6 |
| 665 | C Schumann Lieder | 6 |
| 666 | C Schumann Lieder | 6 |
| 667 | C Schumann Lieder | 6 |
| 668 | C Schumann Lieder | 6 |
| 669 | C Schumann Lieder | 6 |
| 670 | C Schumann Lieder | 6 |
| 671 | C Schumann Lieder | 6 |
| 672 | C Schumann Lieder | 6 |
| 673 | C Schumann Lieder | 7 |
| 674 | C Schumann Lieder | 7 |
| 675 | C Schumann Lieder | 7 |
| 676 | C Schumann Lieder | 7 |
| 677 | C Schumann Lieder | 7 |
| 678 | C Schumann Lieder | 7 |
| 679 | C Schumann Lieder | 7 |
| 680 | C Schumann Lieder | 7 |
| 681 | C Schumann Lieder | 7 |
| 682 | C Schumann Lieder | 7 |
| 683 | C Schumann Lieder | 7 |
| 684 | C Schumann Lieder | 7 |
| 685 | C Schumann Lieder | 8 |
| 686 | C Schumann Lieder | 8 |
| 687 | C Schumann Lieder | 8 |
| 688 | C Schumann Lieder | 8 |
| 689 | C Schumann Lieder | 8 |
| 690 | C Schumann Lieder | 8 |
| 691 | C Schumann Lieder | 8 |
| 692 | C Schumann Lieder | 8 |
| 693 | C Schumann Lieder | 8 |
| 694 | C Schumann Lieder | 9 |
| 695 | C Schumann Lieder | 9 |
| 696 | C Schumann Lieder | 9 |
| 697 | C Schumann Lieder | 10 |
| 698 | C Schumann Lieder | 11 |
As violin plot#
# fig = px.violin(weighted_tpc,
# x='dataset',
# y='tpc',
# color='dataset',
# title="Corpus-wise distribution over line of fifths (tonal pitch classes)",
# box=True,
# labels=dict(
# dataset='',
# tpc='distribution of tonal pitch classes by duration'
# ),
# category_orders=dict(dataset=chronological_corpus_names),
# color_discrete_map=corpus_name_colors,
# width=1000,
# height=600,
# )
# fig.update_traces(spanmode='hard') # do not extend beyond outliers
# fig.update_layout(**utils.STD_LAYOUT,
# showlegend=False)
# fig.update_yaxes(
# tickmode= 'array',
# tickvals= [-12, -9, -6, -3, 0, 3, 6, 9, 12, 15, 18],
# ticktext = ["Dbb", "Bbb", "Gb", "Eb", "C", "A", "F#", "D#", "B#", "G##", "E##"],
# zerolinecolor='grey',
# zeroline=True
# )
# fig.update_xaxes(tickangle=45)
# save_figure_as(fig, "pitch_class_distributions_corpuswise_violins")
# fig.show()
(all_notes)
| mc | mn | quarterbeats | quarterbeats_all_endings | duration_qb | duration | mc_onset | mn_onset | timesig | staff | voice | volta | chord_id | gracenote | midi | name | nominal_duration | octave | scalar | tied | tremolo | tpc_name | tpc | corpus_name | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| corpus | piece | i | ||||||||||||||||||||||||
| c_schumann_lieder | op13no1 Ich stand in dunklen Traumen | 0 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 3 | 1 | <NA> | 6 | <NA> | 51 | Eb3 | 1/8 | 3 | 1 | <NA> | <NA> | Eb | -3 | C Schumann Lieder |
| 1 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 2 | 1 | <NA> | 0 | <NA> | 58 | Bb3 | 1/8 | 3 | 1 | <NA> | <NA> | Bb | -2 | C Schumann Lieder | ||
| 2 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 2 | 1 | <NA> | 0 | <NA> | 63 | Eb4 | 1/8 | 4 | 1 | <NA> | <NA> | Eb | -3 | C Schumann Lieder | ||
| 3 | 1 | 1 | 0 | 0 | 0.5 | 1/8 | 0 | 0 | 3/4 | 2 | 1 | <NA> | 0 | <NA> | 67 | G4 | 1/8 | 4 | 1 | <NA> | <NA> | G | 1 | C Schumann Lieder | ||
| 4 | 1 | 1 | 1/2 | 1/2 | 0.5 | 1/8 | 1/8 | 1/8 | 3/4 | 3 | 1 | <NA> | 7 | <NA> | 51 | Eb3 | 1/8 | 3 | 1 | <NA> | <NA> | Eb | -3 | C Schumann Lieder | ||
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | |
| op23no6 O Lust o Lust | 690 | 40 | 40 | 117 | 117 | 1.5 | 3/8 | 0 | 0 | 6/8 | 2 | 1 | <NA> | 588 | <NA> | 65 | F4 | 1/4 | 4 | 3/2 | <NA> | <NA> | F | -1 | C Schumann Lieder | |
| 691 | 40 | 40 | 117 | 117 | 1.5 | 3/8 | 0 | 0 | 6/8 | 2 | 1 | <NA> | 588 | <NA> | 70 | Bb4 | 1/4 | 4 | 3/2 | <NA> | <NA> | Bb | -2 | C Schumann Lieder | ||
| 692 | 40 | 40 | 237/2 | 237/2 | 0.5 | 1/8 | 3/8 | 3/8 | 6/8 | 3 | 1 | <NA> | 591 | <NA> | 39 | Eb2 | 1/8 | 2 | 1 | <NA> | <NA> | Eb | -3 | C Schumann Lieder | ||
| 693 | 40 | 40 | 237/2 | 237/2 | 0.5 | 1/8 | 3/8 | 3/8 | 6/8 | 2 | 1 | <NA> | 589 | <NA> | 55 | G3 | 1/8 | 3 | 1 | <NA> | <NA> | G | 1 | C Schumann Lieder | ||
| 694 | 40 | 40 | 237/2 | 237/2 | 0.5 | 1/8 | 3/8 | 3/8 | 6/8 | 2 | 1 | <NA> | 589 | <NA> | 63 | Eb4 | 1/8 | 4 | 1 | <NA> | <NA> | Eb | -3 | C Schumann Lieder |
10418 rows × 24 columns
width = 1400
height = 800
weighted_pitch_values = pd.concat(
[
weighted_midi.rename(columns={"midi": "value"}),
weighted_tpc.rename(columns={"tpc": "value"}),
],
keys=["MIDI pitch", "Tonal pitch class"],
names=["distribution"],
).reset_index(level=[0, 1])
fig = plotting.make_violin_plot(
weighted_pitch_values,
x_col="dataset",
y_col="value",
color="dataset",
facet_row="distribution",
box=True,
labels=dict(dataset="", tpc="distribution of tonal pitch classes by duration"),
category_orders=dict(dataset=chronological_corpus_names),
# color_discrete_map=corpus_name_colors,
color_discrete_sequence=px.colors.qualitative.Dark24,
traces_settings=dict(
spanmode="hard",
width=1,
# scalemode='width'
),
layout=dict(
showlegend=False,
margin=dict(
t=0,
b=0,
l=0,
r=0,
),
),
x_axis=dict(
# tickangle=45,
tickfont_size=15
),
y_axis=dict(
tickmode="array",
tickvals=[-12, -9, -6, -3, 0, 3, 6, 9, 12, 15, 24, 36, 48, 60, 72, 84, 96],
ticktext=[
"Dbb",
"Bbb",
"Gb",
"Eb",
"C",
"A",
"F#",
"D#",
"B#",
"G##",
"C1",
"C2",
"C3",
"C4",
"C5",
"C6",
"C7",
],
zerolinecolor="grey",
zeroline=True,
),
width=width,
height=height,
)
utils.realign_subplot_axes(fig, y_axes=dict(title_text=""))
save_figure_as(fig, "notes_violin", width=width, height=height)
fig
fig = plotting.make_box_plot(
weighted_pitch_values,
x_col="dataset",
y_col="value",
color="dataset",
facet_row="distribution",
# box=True,
labels=dict(dataset="", tpc="distribution of tonal pitch classes by duration"),
category_orders=dict(dataset=chronological_corpus_names),
# color_discrete_map=corpus_name_colors,
color_discrete_sequence=px.colors.qualitative.Light24,
# traces_settings=dict(spanmode='hard'),
layout=dict(showlegend=False, margin=dict(t=0)),
x_axis=dict(tickangle=45, tickfont_size=15),
y_axis=dict(
tickmode="array",
tickvals=[-12, -9, -6, -3, 0, 3, 6, 9, 12, 15, 24, 36, 48, 60, 72, 84, 96],
ticktext=[
"Dbb",
"Bbb",
"Gb",
"Eb",
"C",
"A",
"F#",
"D#",
"B#",
"G##",
"C1",
"C2",
"C3",
"C4",
"C5",
"C6",
"C7",
],
zerolinecolor="grey",
zeroline=True,
),
width=width,
height=height,
)
utils.realign_subplot_axes(fig, y_axes=True)
save_figure_as(fig, "notes_box", width=width, height=height)
fig
As bar plots#
bar_data = all_notes.groupby("tpc").duration_qb.sum().reset_index()
x_values = list(range(bar_data.tpc.min(), bar_data.tpc.max() + 1))
x_names = ms3.fifths2name(x_values)
fig = px.bar(
bar_data,
x="tpc",
y="duration_qb",
labels=dict(tpc="Named pitch class", duration_qb="Duration in quarter notes"),
color_discrete_sequence=utils.CORPUS_COLOR_SCALE,
width=1000,
height=300,
)
fig.update_layout(**utils.STD_LAYOUT)
fig.update_xaxes(
zerolinecolor="grey",
tickmode="array",
tickvals=x_values,
ticktext=x_names,
dtick=1,
ticks="outside",
tickcolor="black",
minor=dict(dtick=6, gridcolor="grey", showgrid=True),
)
save_figure_as(fig, "pitch_class_distribution_absolute_bars")
fig.show()
scatter_data = all_notes.groupby(["corpus_name", "tpc"]).duration_qb.sum().reset_index()
fig = px.bar(
scatter_data,
x="tpc",
y="duration_qb",
color="corpus_name",
labels=dict(
duration_qb="duration",
tpc="named pitch class",
),
category_orders=dict(dataset=chronological_corpus_names),
color_discrete_map=corpus_name_colors,
width=1000,
height=500,
)
fig.update_layout(**utils.STD_LAYOUT)
fig.update_xaxes(
zerolinecolor="grey",
tickmode="array",
tickvals=x_values,
ticktext=x_names,
dtick=1,
ticks="outside",
tickcolor="black",
minor=dict(dtick=6, gridcolor="grey", showgrid=True),
)
save_figure_as(fig, "pitch_class_distribution_corpuswise_absolute_bars")
fig.show()
As scatter plots#
fig = px.scatter(
scatter_data,
x="tpc",
y="duration_qb",
color="corpus_name",
labels=dict(
duration_qb="duration",
tpc="named pitch class",
),
category_orders=dict(dataset=chronological_corpus_names),
color_discrete_map=corpus_name_colors,
facet_col="corpus_name",
facet_col_wrap=3,
facet_col_spacing=0.03,
width=1000,
height=1000,
)
fig.update_traces(mode="lines+markers")
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
fig.update_layout(**utils.STD_LAYOUT, showlegend=False)
fig.update_xaxes(
zerolinecolor="grey",
tickmode="array",
tickvals=[-12, -6, 0, 6, 12, 18],
ticktext=["Dbb", "Gb", "C", "F#", "B#", "E##"],
visible=True,
)
fig.update_yaxes(zeroline=False, matches=None, showticklabels=True)
save_figure_as(fig, "pitch_class_distribution_corpuswise_scatter")
fig.show()
no_accidental = bar_data[bar_data.tpc.between(-1, 5)].duration_qb.sum()
with_accidental = bar_data[~bar_data.tpc.between(-1, 5)].duration_qb.sum()
entire = no_accidental + with_accidental
(
f"Fraction of note duration without accidental of the entire durations: {no_accidental} / {entire} = "
f"{no_accidental / entire}"
)
'Fraction of note duration without accidental of the entire durations: 2958.15 / 5940.2 = 0.49798828322278715'
Notes and staves#
print("Distribution of notes over staves:")
utils.value_count_df(all_notes.staff)
Distribution of notes over staves:
| counts | % | |
|---|---|---|
| staff | ||
| 2 | 5073 | 48.69 |
| 3 | 4177 | 40.09 |
| 1 | 1168 | 11.21 |